implemented something compilable for new() needs testing