more complete net* implementation