Reduce filesize

this builds off of #46 only look at the changes in this commit: https://github.com/raphaeleidus/echo/commit/66dcfd7792d65b62f126248222e4643a1d0d6c71

this will also address #37 and #38 sort of by accident

I am slightly concerned about performance implications. will do some testing tomorrow