cleaned up / commented