changed to better method names and added stuff