Part of #60
Part of #60