Refactor base and add more chaining properties