basic functionality added
some structure added, donut directive