remove logging
add extensions capability -- maybe I should be using prototype inheritance?