separated implementation
creating type and depth conversion
added type and depth conversions
added generic constructor
added image type and depth conversion