Simplified and updated