Add support for custom ids

Close #70