change internal representation for cleaner code
made test more agnostic
made test more readable
update docs