Using extensions for protocol conformance.
Added comments. Change method name.