cleaner. still broken, but cleaner