Refactored to new system. why'd i do this again?