Organised functionality, added persistant datastore