commit with necessary features