Added very ugly implementation