add documentation
reorder assert
get now just returns nil if it cannot find the method