ByteWeight review

what does `M` stands for? Can you please add comments, explaining to a user what are you requiring from him.

also, add docstrings