making 100% functional