Add API documentation
Version 2.3.0
Use mixin instead of class
Version 2.4.0