fuck
works with everything except doubles
refactorings
minor refactorings