added the empty and mixin functions and some more documentation