basic sorcery user function complete