finished basic operations