refactored stuff and moved stuff around and stuff