Keep only the core functionality