will probably make changes while going through documenting