Implement #20 to some degree