experimenting with typescript