complete a simple version