rewrite to coffee & add specs

Przepisałem większość istniejącego kodu do coffescript i dodałem testy.