lazy computation

Fix #3