addresses some parts of #23