Overhauled promise logic in factories and controllers