First attempt with typescript