added a separate solution for testing