somehow works
finished base functionality without persistence