separated base solution class into its own module and translation unit