implemented pre