break out states into files, add better enemy logic