implemented internals for normal and perfect shots