Implementation details due to high level decisions