better instance return object handling
better function order