Observable mixin and metaprograming refactor