more major refactor, start of character object