added in and out interfaces