Improve flow and class inheritance
Updated for new software flow