Starting modularizing
Initial API working
Basic component functionality