initial work and stuff