add multi-methods and chained methods