basic implementation of effects