New interface. All in one function now. Code still needs work.