make use of implicitConversions visible to enable

See the Scala docs for value scala.language.implicitConversions for a discussion
add feature to remove property from component by the property's name.
finish basic component functionality

implement composite pattern
add tests