close #20. rewrite functions. create container mixin.