maybe not the best solution, but I like it. Short, clean, and easy to understand