Refactored, and change things around.