Add typed collection

Fix #3