still not done yet. organization and making sure there are not memory leaks