One more try (I really need to add tests)