bah, I really need to redo the core engine