Still need to iron out issues with skip logic. maybe even rewrite