uploaded complete solution, assert method, reflection