
An Epsom mum has recently set up her own party planning company to help make children 's birthday dreams come true . Marina Chalke , decided to start her business - called Littlepartyplanner - after the birth of her youngest son last year . ' Having organised my older children 's parties in the past , I understood the importance of getting it just right for them ' explains Marina . ' I always wanted something special , but juggling work , a busy mum schedule and organising a party often meant I had bitten off more than I could chew ' . ' There is always so much to organise - did I go for a disco , an entertainer or bouncy castle ? What about the cake ? What about invites ? And where was I going to hold it ? Home was n't always a good option ! ' ' What I needed back then was an expert , who could offer advice on organising a successful party and deciding what kind of theme it should take , but there never seemed to be anyone in my local area to help with the intricate details ' . After having her little boy , Luca , in 2005 she wanted to help other busy mums so that they did not go through the same pressure . So she decided to become the expert herself . Under the guidance of national franchise company Mums in Control , she set about creating a business that meant she could work from home . ' Little Party Planners offers other busy parents the chance to hand over all the hard work that goes into organising a party for the kids , ' says Marina . ' I have a huge list of contacts in the local area , from musicians and venues to cake decorators and bouncy castles , this means the planning can be left to me . ' Parents let me have an idea of what they want and leave it to myself to organise . They just have to turn up with their children and their friends and know everything will be sorted for them . It takes so much pressure out of something that can cause so much anxiety . ' Unfortunately after all her initial hard work starting up her new venture , she stumbled across an obstacle . ' I wanted to approach mums after school , at the school gate where I could speak to them and hand out my leaflet ' she explains ' but as soon as I stepped out of my front door I could n't do it , my confidence had gone and I just did n't know how to conquer this fear ' . This is when the BBC came into play . They were putting together four , 6 minute programmes on going back to work after having a baby and were interested in talking to Marina . ' I was desperate to sort this glitch in my new business venture . I did n't know what had happened to me and needed guidance on how to get my confidence back ' . So with the help of TV Presenter Melinda Messenger and Careers Coach , John Lees she went ahead with the filming to help her readdress her confidence issues . ' John offered me some really good advice ' she says ' In my previous job roles I have been used to endorsing a product , this time the product was me and I was using the wrong approach ' . This realisation has helped Marina to get over the first hurdle of speaking to groups of mums and dads that she did n't know . ' I have since used Johns approach and everything is falling into place . ' Marina could n't be happier about how things are turning out . Being able to work from home has meant that she has been able to spend valuable time with her children . ' It 's the ideal business for anyone , like me , who wants to work but also wants to spend precious time with their children . I am able to fit in much of my planning around them , so I do n't feel I miss out on the important things , ' Marina adds . · For more details on Little Party Planners contact Marina Chalke on 0208 394 0702 or email : marinachalke@littlepartyplanner . c o. u k . Little Party Planner is part of the Mums in Control Franchise network . For details on MiC visit the website : www . m umsincontrol . c o. u k , or call : 0870 0622212 . 