added some basic functionality, long way to go.