Added documentation on the implementation of custom types