clean up, make better structure