Full implementation of free constructor, horizontal and vertical splits