One possibly very evil macro
Backend for Solution and Wave complete with tests
Backend for Task w/ tests