no errors building, better program structure