fleshed out Unit interface and added generic Dim type