Clean file structure and add mixins and helper classes

Signed-off-by: Corey Bruyere <coreybruyere@ymail.com>