tweaking, more impl