Refactor to generic item class

Item class can be used with multiple possible items